 ; Try some basic stuff
	SET A, 0x30              ; 7c01 0030
    SET [0x1000], 0x20       ; 7de1 1000 0020
    SUB A, [0x1000]          ; 7803 1000
    IFN A, 0x10              ; c00d
    	SET PC, crash        ; 7dc1 001a [*]

; Do a loopy thing
	SET I, 10                ; a861
    SET A, 0x2000            ; 7c01 2000
	:loop	SET [0x2000+I], [A]      ; 2161 2000
    SUB I, 1                 ; 8463
	IFN I, 0                 ; 806d
    	SET PC, loop         ; 7dc1 000d [*]

; Call a subroutine
	SET X, 0x4               ; 9031
    JSR testsub              ; 7c10 0018 [*]
    SET PC, crash            ; 7dc1 001a [*]
	:testsub	SHL X, 4     ; 9037
	SET PC, POP              ; 61c1

; Hang forever. X should now be 0x40 if everything went right.
	:crash        SET PC, crash            ; 7dc1 001a [*]

; [*]: Note that these can be one word shorter and one cycle faster by using the short form (0x00-0x1f) of literals,
;      but my assembler doesn't support short form labels yet.
